package com.inspur.gs.scm.sd.salesorder.rest;

import com.fasterxml.jackson.databind.JsonNode;
import com.inspur.edp.sgf.api.annotation.EapiService;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@EapiService(id = "8ac64c96-5c03-45ff-bd0b-0fa2aefa9f90", code = "ZUserVoExtend1")
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface ZUserVoExtend1Service {

    @POST
    @Path("/service/createsession")
    @Produces(MediaType.TEXT_PLAIN)
    public String createSession();

    @POST
    @Path("/")
    public Object create(JsonNode node);

    @PUT
    @Path("/service/edit/{dataId}")
    public Object edit(@PathParam("dataId") String dataId, JsonNode node);

    @DELETE
    @Path("/{dataId}")
    public void delete();

    @DELETE
    @Path("/")
    public void batchDelete(@QueryParam("ids") String ids);

    @PATCH
    @Path("/")
    public Object update(JsonNode node);

    @GET
    @Path("/{dataId}")
    public Object retrieve(@PathParam("dataId") String dataId);

    @PUT
    @Path("/service/retrieve/{dataId}")
    public Object retrieveWithChildPagination(@PathParam("dataId") String dataId, JsonNode node);

    @PUT
    @Path("/service/querychild")
    public Object queryChild(JsonNode node);

    @GET
    @Path("/")
    public Object query(@QueryParam("entityFilter") String entityFilter);

    @PUT
    @Path("/")
    public Object save(JsonNode node);

    @POST
    @Path("/service/cancel")
    public void cancel();

    @GET
    @Path("/elementhelps/{labelId}")
    public Object getElementHelp(@PathParam("labelId") String labelId, @QueryParam("nodeCode") String nodeCode, @QueryParam("queryParam") String queryParam);

    @POST
    @Path("/{rootId}/userdetail")
    public Object createChildUserDetail(@PathParam("rootId") String rootId, JsonNode node);

    @DELETE
    @Path("/{rootId}/userdetail/{userDetail}Id")
    public void deleteChildUserDetail(@PathParam("rootId") String rootId, @PathParam("userDetailId") String userDetailId);

    @PUT
    @Path("/extension/delete/{dataId}")
    public Object extend_Delete(JsonNode node);

    @PUT
    @Path("/extension/batchdelete")
    public Object extend_BatchDelete(@QueryParam("ids") String ids, JsonNode node);

    @PUT
    @Path("/extension/retrieve/{dataId}")
    public Object extend_Retrieve(@PathParam("dataId") String dataId, JsonNode node);

    @PUT
    @Path("/extension/query")
    public Object extend_Query(@QueryParam("entityFilter") String entityFilter, JsonNode node);

    @PUT
    @Path("/extension/elementhelps")
    public Object extend_GetElementHelp(JsonNode node);

    @PUT
    @Path("/extension/{rootId}/userdetail/{userDetailId}")
    public Object extend_DeleteChildUserDetail(@PathParam("rootId") String rootId, @PathParam("userDetailId") String userDetailId, JsonNode node);

    @PUT
    @Path("/service/datadeser")
    public Object dataDeser(JsonNode node);

    @PUT
    @Path("/service/submit")
    public Object submit(JsonNode node);

    @PUT
    @Path("/service/t1")
    public Object t1(JsonNode node);

}